A disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating disks (or discs) (also referred to as the media).
A disk (also referred to as a disk drive) is a device implementing such a storage mechanism with fixed or removable media; with removable media the device is usually distinguished from the media as in compact disc drive and the compact disc.
Notable types are the hard disk drives (HDD) containing a non-removable disk, the floppy disk drive (FDD) and its removable floppy disk, and various optical disc drives and associated optical disc media (www.wikipedia.org).
RAID (redundant array of independent disks) is a storage technology that combines multiple disks into a logical unit. Data is distributed across the drives in one of several ways called “RAID levels”, depending on the level of redundancy and performance required (www.wikipedia.org).
RAID is used as an umbrella term for computer data storage schemes that can divide and replicate data among multiple physical drives: RAID is an example of storage virtualization and the array can be accessed by the operating system as one single drive.
The different schemes or architectures are named by the word RAID followed by a number (e.g., RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 and RAID 10). Each scheme provides a different balance between the key goals: reliability and availability, performance and capacity. RAID levels greater than RAID 0 provide protection against unrecoverable (sector) read errors, as well as whole disk failure.
A number of standard schemes have evolved which are referred to as levels. There were five RAID levels originally conceived, but many more variations have evolved, notably several nested levels and many non-standard levels (mostly proprietary). RAID levels and their associated data formats are standardized by the Storage Networking Industry Association (SNIA) in the Common RAID Disk Drive Format (DDF) standard.
RAID 5, 6 and 10 levels are commonly used in the industry.
RAID 5 (block-level striping with distributed parity) distributes parity along with the data and requires all drives but one to be present to operate. The array is not destroyed by a single drive failure. Upon drive failure, any subsequent reads can be calculated from the distributed parity such that the drive failure is masked from the end user. RAID 5 requires at least three disks.
RAID 6 (block-level striping with double distributed parity) provides fault tolerance up to two failed drives. This makes larger RAID groups more practical, especially for high-availability systems. This becomes increasingly important as large-capacity drives lengthen the time needed to recover from the failure of a single drive. Like RAID 5, a single drive failure results in reduced performance of the entire array until the failed drive has been replaced and the associated data rebuilt.
In RAID 10 (often referred to as RAID 1+0) (mirroring and striping), data are written in stripes across primary disks that have been mirrored to the secondary disks.
Modern storage systems may include large numbers of disk drives. There is a growing need to provide reliable and efficient storage systems
RAID 5 calculates a single parity block for multiple data blocks.
The parity block is calculated as the XOR of all data blocks. RAID 5 provides an ability to recover from a single disk failure. The reconstruction of a failed disk requires reading all other disks. There is a relatively high risk for a second disk failure during the reconstruction of the failed disk.
RAID 6 calculates a pair of parity blocks for multiple data blocks. Parity blocks are calculated as XOR and Galois field (GF) multiplication of all data blocks.
RAID 6 provides the ability to recover from up to 2 disk failures. The reconstruction of failed disks requires reading all other disks.
For a RAID 6, just using two XOR functions is not sufficient. If two disks in a RAID6 array fail, it is not possible to determine data blocks location using the XOR function alone.
Evenodd is a known scheme for tolerating double disk failures that is optimal with regard to both storage and performance. Evenodd employs the addition of only two redundant disks and consists of simple exclusive-OR computations. A standard Evenodd arranges p+2 columns (data portions in a stripe) and (p−1) rows (stripes), where p is the number of disks in the RAID. Evenodd uses two parities, an horizontal parity, which simply XOR the p+2 data portions in the RAID stripe and a diagonal parity that is calculated by XORing data values across RAID stripes more or less diagonally. The Evenodd technique places constraints on the width of a RAID stripe and requires a prime number (p) of disks in the RAID. The even-odd algorithm cannot be easily modified for extending the protection to 3 disk failures and almost impossible to be modified for supporting more than 3 disk failures.
Another scheme for tolerating double disk failures that employs optimal redundant storage (only two extra disks for two parities) is based on Reed-Solomon error correction and requires computation over finite fields. Reed-Solomon algorithm can support multiple disk failure but results in a more complex implementation. The normal write as well as the rebuild process of a failed disk is very intensive in term of CPU power.
It was believed to have relatively low risk for a third disk to fail during the reconstruction of two failed disks.
The amount of data stored in today's data-centers is rapidly growing, while reliability is becoming more important than ever before.
As a result, storage density is also growing, while disk drive failure rate is not improving.
This poses major scalability challenges on RAID schemes, due to the increased number of disks, and increased chance for double and triple faults during long disk rebuild times.
There is a growing need to provide efficient systems and methods for providing scalable RAID schemes.